#include<my_header.h>

int epolladd(int epfd,int fd){
    struct epoll_event event;
    event.events=EPOLLIN;
    event.data.fd=fd;
    epoll_ctl(epfd,EPOLL_CTL_ADD,fd,&event);
    return 0;
}

int epolldel(int epfd,int fd){
    epoll_ctl(epfd,EPOLL_CTL_DEL,fd,NULL);
    return 0;
}

// 带安全限制的版本 的字符串截取
int getstr(const char *src, int n, char *dest, size_t dest_size) {
    char *workbuf = strdup(src); // 创建可修改副本
    if(!workbuf) return -1;

    char *token = strtok(workbuf, " ");
    int count = 1;
    int result = -1;

    while(token) {
        if(count == n) {
            strncpy(dest, token, dest_size-1);
            dest[dest_size-1] = '\0';
            result = 0;
            break;
        }
        token = strtok(NULL, " ");
        count++;
    }

    free(workbuf);
    return result;
}


//测试  getstr成功
int main(){
    char *p="litle light star, twinkle how i wonder what you are";
    // char buf[20]={0};
    // for(int i=0;i<10;i++){
    //     bzero(buf,sizeof(buf));
    //     getstr(p,i+1,buf,20);
    //     printf("%s\n",buf);
    // }
    char tmpbuf[40]={0};
    char tmp[20]={0};
    char tmpp[20]={0};
    getstr(p,1,tmp,20);
    printf("tmp: %s\n",tmp);
    getstr(p,4,tmpp,20);
    printf("tmpp: %s\n",tmpp);
    snprintf(tmpbuf, sizeof(tmpbuf), "%s %s", tmp,tmpp);
    printf("%s\n",tmpbuf);
    return 0;
}

// int main(int argc, char *argv[])
// {
   
//     //epfd初始化
//     int epfd=epoll_create(1);
//     epolladd(epfd,STDIN_FILENO);
    
//     //缓冲区
//     char readbuf[4096]={0}; //接收stdin数据

//     //客户端是否退出标志
//     int is_alive=1; //1活 0死

//     struct epoll_event readySet[1024]={0};
//     while(is_alive){
//         int num=epoll_wait(epfd,readySet,1024,-1);
//         for(int i=0;i<num;i++){
//             if(readySet[i].data.fd==STDIN_FILENO)
//             {

//                 bzero(readbuf,sizeof(readbuf));
//                 ssize_t sret=read(STDIN_FILENO,readbuf,sizeof(readbuf));
//                 if(sret==0){
//                     //客户端退出指令
//                     is_alive=0;
//                     break;
//                 }else{
//                     // int len=strlen(readbuf);
//                     // readbuf[strlen(readbuf)-1]='\0';  //去掉接收到的末尾\n换行符
//                     // readbuf[len]='!';
//                     printf("%s\n",readbuf);
//                 }

//             }    
//         }
//     }
    
//     return 0;
// }

